#include<iostream>
#include<cmath>
using namespace std;
const int N=1e5+10;
struct node{
	int k;
	int ne;
}p[N];
int s1,s2,e1,e2;
int vis[N];
int n;
int main()
{
	cin>>s1>>n;
	for(int i=1;i<=n;i++)
	{
		int u,k,ne;
		cin>>u>>k>>ne;
		p[u].k=k,p[u].ne=ne;
	}
	e1=s1;
	bool flag=0;
	for(int k=1,i=s1;k<=n;k++)
	{
		if(i==e1)
		continue;
//		cout<<i<<' '<<p[i].ne<<' '<<e1<<endl; 
		int w=abs(p[i].k);
		if(!vis[w])
		{
			p[e1].ne=i;
			vis[w]=1;
			e1=i;
		}
		else
		{
			if(!flag)
			{
				e2=i;
				s2=e2;
				flag=1;
			}
			else
			{
				p[e2].ne=i;
			    e2=i;
			}
		}
		i=p[i].ne;
	}
	e1=p[e1].ne;
	e2=p[e2].ne;
	for(int i=s1;i!=e1;i=p[i].ne)
    {
    	if(p[i].ne!=e1)
    	printf("%05d %d %05d\n",i,p[i].k,p[i].ne);
    	else
    	printf("%05d %d -1\n",i,p[i].k);
	}
	if(flag)
	for(int i=s2;i!=e2;i=p[i].ne)
	{
    	if(p[i].ne!=e2)
    	printf("%05d %d %05d\n",i,p[i].k,p[i].ne);
    	else
    	printf("%05d %d -1\n",i,p[i].k);
	}
	return 0;
}
